"""
判断方法
"""

s = '我爱拍肾！'
print(s.startswith('我'))  # True
print(s.startswith('爱'))  # False
print(s.startswith('爱', 1))  # True
print(s.endswith('！'))  # True
print(s.endswith('拍', 0, 2))  # 左闭右开
# False
print(s.endswith('拍', 0, 3))  # 左闭右开
# True
# 第一个参数支持元组形式

if s.startswith(('你', '我', '他')):
    print('总有人喜欢拍肾！')

# 总有人喜欢拍肾！
# 确实是执行了

# 判断字符串中每个单词是否全都是大写开头其余小写
x = 'I Love Python'
print(x.istitle())  # True

# 判断字符串中每个字母是否全都是大写
x = 'I LOVE PYTHON'
print(x.isupper())  # True

x = 'I love Python'
print(x.isupper())  # False

# 可以链式调用
print(x.upper().isupper())  # True

# 同理还有 islower 不再赘述

# 判断字符串是否全是字母
print(x.isalpha())  # False 有空格
print(s.isalpha())  # False 有中文 有空格
print('abc'.isalpha())  # True

# 判断一个字符串是否全都是空字符 包括空格 tab(制表符) 以及各种转义字符\n \t \r
print(' \n    \t\r'.isspace())  # True

# 判断一个字符串是否可以打印 一般有转义字符不可打印
print(x)  # I love Python
print(x.isprintable())  # True
print('I love Python\n'.isprintable())  # False

# 判断数字

"""
isdecimal()
Return True if the string is a decimal string, False otherwise. 
A string is a decimal string if all characters in the string are decimal and
there is at least one character in the string.
如果字符串是十进制字符串则返回True，否则返回False。
如果字符串中所有字符都是十进制且字符串中至少有一个字符，则该字符串为十进制字符串。
"""
"""
isdigit()
Return True if the string is a digit string, False otherwise.
A string is a digit string if all characters in the string are digits and there
is at least one character in the string.
如果字符串是数字字符串则返回True，否则返回False。
如果字符串中的所有字符都是数字，且字符串中至少有一个字符，则该字符串为数字字符串。
"""
"""
isnumeric()
Return True if the string is a numeric string, False otherwise.
A string is numeric if all characters in the string are numeric and there is at        
least one character in the string.
如果字符串是数字字符串则返回True，否则返回False。
如果字符串中所有字符均为数字且字符串中至少有一个字符，则该字符串为数字型。
"""

print('2'.isdecimal())  # True
print('2'.isdigit())  # True
print('2'.isnumeric())  # True

print('2²'.isdecimal())  # False
print('2²'.isdigit())  # True
print('2²'.isnumeric())  # True

print('Ⅳ'.isdecimal())  # False
print('Ⅳ'.isdigit())  # False
print('Ⅳ'.isnumeric())  # True

print('一'.isdecimal())  # False
print('一'.isdigit())  # False
print('一'.isnumeric())  # True
